package com.xiaomei.manager.service;

import java.util.List;

import com.xiaomei.manager.model.Broadcast;
import com.xiaomei.manager.model.BroadcastRecord;
import com.xiaomei.manager.web.dto.req.DayCommentDto;
import com.xiaomei.manager.web.dto.req.DayPostDto;
import com.xiaomei.manager.web.dto.req.ProbabilityDto;
import com.xiaomei.manager.web.page.Page;

public interface IBroadcastService {

	/**
	 * 查询广播列表(分页查询)
	 * @param page
	 * @return
	 */
	List<Broadcast> selectBroadcastForPage(Page<Broadcast> page);
	
	/**
	 * 保存广播信息
	 * @param broadcast
	 * @return
	 */
	boolean addBroadcast(Broadcast broadcast);
	
	/**
	 * 获取广播详情
	 * @param id
	 * @return
	 */
	Broadcast getBroadcastById(Integer id);
	
	/**
	 * 更新广播信息
	 * @param broadcast
	 * @return
	 */
	boolean modifyBroadcastById(Broadcast broadcast);
	
	/**
	 * 根据广播ID获取评论列表
	 * @param broadcastId
	 * @return
	 */
	List<BroadcastRecord> selectByBroadcastId(Integer broadcastId);
	
	/**
	 * 禁用广播信息
	 * @param id
	 * @return
	 */
	boolean disableBroadcastById(Integer id);
	
	/**
	 * 禁用评论
	 * @param id
	 * @return
	 */
	boolean disableBroadcastRecordById(Integer broadcastId, Integer id);
	
	/**
	 * 发布预发布广播
	 * @return
	 */
	int pushBeforeBroadcast();
	
	/**
	 * 日发广播量
	 * @param page
	 * @return
	 */
	List<DayPostDto> getDayPost(Page<DayPostDto> page);
	/**
	 * 日评论量
	 * @param page
	 * @return
	 */
	List<DayCommentDto> getDayComment(Page<DayCommentDto> page);
	/**
	 * 日点赞量
	 * @param page
	 * @return
	 */
	List<DayPostDto> getDayFabulous(Page<DayPostDto> page);
	/**
	 * 评论点赞概率统计
	 * @param page
	 * @return
	 */
	List<ProbabilityDto> getProbability(Page<ProbabilityDto> page);
	
	/**
	 * 保存广播评论记录
	 * @param record
	 * @return
	 */
	int insertBroadcastRecord(BroadcastRecord record);
	/**
	 * 更新评论数加一
	 * @param id
	 * @return
	 */
	int updateCommentCount(Integer id);
	
}
